home *** CD-ROM | disk | FTP | other *** search
/ Underground / Underground CD1.iso / other / how-to.pl / SMB-HOWTO.pl.txt < prev    next >
Encoding:
Text File  |  1997-11-25  |  32.1 KB  |  1,057 lines

  1.   SMB-Howto
  2.   Autor:David Wood, dwood@plugged.net.au v1.0, 10 August 1996
  3.   Wersja polskiea: Bartosz Maruszewski
  4.   B.Maruszewski@zsmeie.torun.pl
  5.   v1.12, 26 Lipca 1997
  6.  
  7.  
  8.   Jest to dokument z serii HOWTO (Jak To Zrobiµ). Opisuje on jak u┐ywaµ
  9.   Session Message Protocol, zwanego te┐ NetBIOS lub LanManager z Linux-
  10.   em.  Dokument ten zosta│ napisany w standardzie ISO-8859-2.  Orygina│
  11.   mo┐na znale╝µ pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/sun¡
  12.   site/docs/HOWTO.
  13.   ______________________________________________________________________
  14.  
  15.   Table of Contents
  16.  
  17.  
  18.   1. Wprowadzenie.
  19.  
  20.      1.1 Dalsze informacje.
  21.  
  22.   2. Instalacja.
  23.  
  24.   3. Uruchamianie demon≤w.
  25.  
  26.   4. Og≤lna konfiguracja. (/etc/smb.conf)
  27.  
  28.   5. UdostΩpnianie dysku Linux-owego komputerom z Windows.
  29.  
  30.   6. UdostΩpnianie dysku spod Windows maszynom z Linux-em.
  31.  
  32.   7. UdostΩpnianie drukarki Linux-owej komputerom z Windows.
  33.  
  34.   8. UdostΩpnianie drukarki spod Windows komputerom z Linux-em.
  35.  
  36.   9. Prawa autorskie i Zako±czenie.
  37.  
  38.      9.1 Prawa autorskie.
  39.      9.2 PodziΩkowania.
  40.      9.3 Od t│umacza.
  41.  
  42.  
  43.   ______________________________________________________________________
  44.  
  45.   1.  Wprowadzenie.
  46.  
  47.  
  48.   Jest to dokument z serii HOWTO (Jak To Zrobiµ). Opisuje on jak u┐ywaµ
  49.   z Linuxem Session Message Protocol, zwanego te┐ NetBIOS lub
  50.   LanManager.
  51.  
  52.   Dokument ten jest prowadzony przez Davida Wooda dwood@plugged.net.au.
  53.   Wszelkie dodatki, modyfikacje lub poprawki mog▒ byµ przes│ane do mnie,
  54.   aby je p≤╝niej umie╢ciµ w nastΩpnej wersji.
  55.  
  56.   Protok≤│ SMB u┐ywany jest przez Microsoft Windows 3.11, NT i 95 aby
  57.   wsp≤│dzieliµ zasoby dyskowe i drukarki. Maszyny Unix-owe (w tym tak┐e
  58.   Linux) mog▒ korzystaµ z tych zasob≤w u┐ywaj▒c narzΩdzi stworzonych
  59.   przez Andrew Tridgella.
  60.  
  61.   S▒ cztery rzeczy, kt≤re mo┐na zrobiµ Samb▒:
  62.  
  63.  
  64.   1. UdostΩpniaµ dysk Linux-owy dla komputer≤w z Windows.
  65.  
  66.  
  67.   2. UdostΩpniaµ dysk Windows-owy dla komputer≤w z Linux-em.
  68.  
  69.   3. UdostΩpniaµ drukarkΩ pod Linux-em dla Windows.
  70.  
  71.   4. UdostΩpniaµ drukarkΩ pod Windows dla Linux-a.
  72.  
  73.   Wszystko to zosta│o opisane w tym dokumencie.
  74.  
  75.   Disclaimer. Procedury i skrypty albo dzia│a│y u autora, albo zosta│y
  76.   opisane jako dzia│aj▒ce przez tych, kt≤rzy je napisali.  R≤┐ne
  77.   konfiguracje mog▒ nie dzia│aµ z podanymi tutaj informacjami.  Je╢li
  78.   odkryjesz tak▒ sytuacjΩ mo┐esz napisaµ do autora list z sugesti▒ na
  79.   ulepszenie tego dokumentu, ale autor nic nie gwarantuje. A czego siΩ
  80.   spodziewa│e╢ ? W ko±cu autor jest tyklo konsultantem.
  81.  
  82.  
  83.   1.1.  Dalsze informacje.
  84.  
  85.  
  86.   Dokument ten jest pr≤b▒ opisania jak skonfigurowaµ na Linux-ie
  87.   podstawowe serwisy SMB zwi▒zane z plikami i drukarkami. Samba jest
  88.   bardzo z│o┐onym i kompletnym pakietem. Nie ma sensu, ┐eby kopiowaµ
  89.   tutaj wszystko to co jest zawarte w dokumentacji dla tego pakietu.
  90.  
  91.   Dalszych informacji mo┐esz szukaµ w:
  92.  
  93.   ╖  Dokumentacji do Samby, kt≤ra jest czΩ╢ci▒ dystrybucji.  Dystrybucja
  94.      jest dostΩpna pod adresem: ftp.icm.edu.pl
  95.  
  96.   ╖  HOWTO dotycz▒cym drukowania (Printing HOWTO)
  97.  
  98.   ╖  oraz w mini-HOWTO Print2Win.
  99.  
  100.  
  101.   2.  Instalacja.
  102.  
  103.  
  104.   Naj╢wie┐sze ╝r≤d│a Samby dostΩpne s▒ pod adresem ftp.icm.edu.pl w
  105.   katalogu /pub/samba.
  106.  
  107.   Je╢li instalowa│e╢ dystrybucjΩ Red Hat mog│e╢ wybraµ instalacjΩ Samby
  108.   jako jedn▒ z opcji. Niekt≤re inne dystrybycje te┐ oferuj▒ binaria
  109.   Samby.
  110.  
  111.   NastΩpuj▒ce demony s▒ wymagane do pracy z Samb▒. Zwykle znajduj▒ siΩ
  112.   one w katalogu /usr/sbin i s▒ uruchamiane w momencie startu systemu
  113.   albo przez demon inetd. Przyk│adowe skrypt znajduj▒ siΩ w sekcji
  114.   ``Uruchamianie    demon≤w.''
  115.  
  116.  
  117.   ______________________________________________________________________
  118.         smbd (Demon SMB) i nmbd (ªwiadczy us│ugi nameservera NetBIOS-u)
  119.   ______________________________________________________________________
  120.  
  121.  
  122.  
  123.   Zwykle w systemie instalowane s▒ nastΩpuj▒ce binaraia w katalogu
  124.   /usr/bin:
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.   ______________________________________________________________________
  134.      smbclient (Klient dla maszyn Unix-owych), smbprint (skrypt do
  135.      drukowania na drukarce przy│▒czonej do hosta SMB), smbprint.sysv
  136.      (To samo co wcze╢niej, ale dla systemu UNIX SVR4), smbstatus
  137.      (Wy╢wietla bie┐▒ce po│▒czenia SMB na lokalnym ho╢cie), smbrun
  138.      (G│≤wny skrypt do uruchamiania aplikacji na ho╢cie SMB)
  139.   ______________________________________________________________________
  140.  
  141.  
  142.  
  143.   Dodatkowo zawarty jest w tym dokumencie skrypt o nazwie "print", kt≤ry
  144.   jest po┐ytecznym doko±czeniem skryptu smbprint.
  145.  
  146.   Pakiet Samba jest prosty w instalacji. ªci▒gnij go z podanego
  147.   wcze╢niej miejsca i przeczytaj plik README znajduj▒cy siΩ w
  148.   dystrybucji. Jest jeszcze plik docs/INSTALL.txt, kt≤ry podaje krok po
  149.   kroku co nale┐y zrobiµ, aby zainstalowaµ SambΩ.
  150.  
  151.   PostΩpuj▒c wraz z instalacj▒, umie╢µ demony w /usr/sbin i binaria w
  152.   /usr/bin. Zainstaluj strony do podrΩcznika systemowego "man" w
  153.   /usr/local/man.
  154.  
  155.   Kiedy bΩdziesz instalowa│ pakiet Samba, bΩdziesz musia│ podaµ miejsce,
  156.   gdzie ma siΩ znajdowaµ plik konfiguracyjny smb.conf.  Z regu│y jest to
  157.   katalog /etc, ale mo┐esz go umie╢ciµ, gdzie ci siΩ podoba. Dla
  158.   dalszych instrukcji za│o┐ymy, ┐e plik konfiguracyjny umie╢ci│e╢ w
  159.   /etc, plik loguj▒cy to /var/log/samba-log.%m i katalog blokuj▒cy to
  160.   /var/lock/samba.
  161.  
  162.   Zainstaluj plik konfiguracyjny smb.conf. Przejd╝ do katalogu, gdzie
  163.   zosta│a skompilowana Samba. Zajrzyj do katalogu examples/simple i
  164.   przeczytaj plik README. Skopiuj znaleziony tam plik smb.conf do /etc.
  165.   OSTRO»NIE !!!  Je╢li masz dystrybucjΩ Linux-a, kt≤ra mia│a SambΩ i
  166.   zainstalowa│e╢ j▒ to pewnie masz ju┐ plik smb.conf w katalogu /etc i
  167.   lepiej zacznij od tego pliku.
  168.  
  169.   Je╢li nie chcesz umieszczaµ pliku konfiguracyjnego w /etc, to umie╢µ
  170.   go tam, gdzie chcesz i zr≤b symboliczne do│▒czenie:
  171.  
  172.  
  173.   ______________________________________________________________________
  174.        ln -s /gdzie/jest/smb.conf /etc/smb.conf
  175.   ______________________________________________________________________
  176.  
  177.  
  178.  
  179.  
  180.   3.  Uruchamianie demon≤w.
  181.  
  182.  
  183.   Dwoma demonami SMB s▒: /usr/sbin/smbd i /usr/sbin/nmbd.  Mo┐esz je
  184.   uruchomiµ przez demona inetd lub jako osobne procesy. Je╢li
  185.   konfigurujesz na sta│e serwer plikowy, to powinny one byµ uruchamiane
  186.   przez inetd po to, ┐eby je ponownie uruchomiµ je╢li z jakiego╢ powodu
  187.   przestan▒ dzia│aµ. Je╢li chcesz korzystaµ z Samby tylko czasami, to
  188.   mo┐esz je uruchomiµ z kt≤rego╢ ze skrypt≤w startowych w katalogu
  189.   /etc/rc.d albo po prostu od rΩki wtedy kiedy je potrzebujesz.
  190.  
  191.   Aby uruchomiµ demony przez inetd umie╢µ nastΩpuj▒ce linie w pliku
  192.   /etc/inetd.conf:
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.   ______________________________________________________________________
  200.    Serwis NetBIOS dla Samby
  201.         # netbios-ssn
  202.         stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait
  203.         root /usr/sbin/nmbd nmbd
  204.   ______________________________________________________________________
  205.  
  206.  
  207.  
  208.   NastΩpnie wy╢lij sygna│ HUP do procesu nr 1:
  209.  
  210.   ______________________________________________________________________
  211.        kill -HUP 1
  212.   ______________________________________________________________________
  213.  
  214.  
  215.  
  216.   Dla u┐ytkownik≤w dystrybucji Red Hat.  Aby uruchomiµ te demony ze
  217.   skrypt≤w startowych, umie╢µ nastΩpuj▒cy skrypt w katalogu
  218.   /etc/rc.d/init.d/smb i do│▒cz je symbolicznie do plik≤w podanych w
  219.   komentarzu:
  220.  
  221.  
  222.   ______________________________________________________________________
  223.        #!bin/sh
  224.  
  225.        #
  226.        # /etc/rc.d/init.d/smb - startuje i zatrzymuje serwis SMB
  227.        #
  228.        # NastΩpuj▒ce pliki powinny byµ symbolicznymi do│▒czeniami do
  229.        # tego pliku:
  230.        # /etc/rc.d/rc1.d/K35smb (Zatrzymuje serwis SMB podczas
  231.        # zamkniΩcia systemu.
  232.        # /etc/rc.d/rc3.d/S91smb (Startuje serwis SMB w trybie
  233.        # wielou┐ytkownikowym
  234.        # /etc/rc.d/rc6.d/K35smb (zatrzymuje serwis SMB podczas resetu)
  235.        #
  236.  
  237.        # Biblioteka funkcji
  238.        etc/rc.d/init.d/functions
  239.  
  240.        # Konfiguracja sieci
  241.        etc/sysconfig/network
  242.  
  243.        # Sprawd╝ czy jeste╢my w sieci
  244.        [ ${NETWORKING} = "no" ] && exit 0
  245.  
  246.        # Zobacz jak zostali╢my wywo│ani
  247.        case "$1" in
  248.           start) echo -n "Starting SMB services: "
  249.                   daemon smbd -D
  250.                   daemon nmbd -D
  251.                   echo touch /var/lock/subsys/smb
  252.           ;;
  253.           stop) echo -n "Shutting down SMB services: "
  254.                   killproc smbd
  255.                   killproc nmbd
  256.                   rm -f /var/lock/subsys/smb echo ""
  257.           ;;
  258.           *) echo "Usage: smb {start|stop}" exit 1
  259.        esac
  260.   ______________________________________________________________________
  261.  
  262.  
  263.  
  264.  
  265.   Od t│umacza: Je╢li u┐ywasz dystrybucji Slackware.  Umie╢µ poni┐szy
  266.   fragment w skrypcie startowym /etc/rc.d/rc.local:
  267.  
  268.  
  269.   ______________________________________________________________________
  270.  
  271.      # czy jeste╢my w sieci
  272.      [ ${NETWORKING} = "no" ] && exit 0
  273.  
  274.      # Uruchmon demony Samby
  275.      /usr/sbin/smbd -D
  276.      /usr/sbin/nmbd -D
  277.   ______________________________________________________________________
  278.  
  279.  
  280.  
  281.  
  282.   4.  Og≤lna konfiguracja. (/etc/smb.conf)
  283.  
  284.  
  285.   Konfiguracja Samby na Unix-ie jest kontrolowana jednym plikiem:
  286.   /etc/smb.conf. W pliku tym umieszczasz zasoby jakie chcesz udostΩpniµ
  287.   dla ╢wiata i jakie restrykcje chcesz wprowadziµ.
  288.  
  289.   Poniewa┐ ta sekcja opisuje udostΩpnianie dysk≤w i drukarek Linux-owych
  290.   Windowsom, plik smb.conf bΩdzie najprostszym z mo┐liwych.
  291.  
  292.   Nie martw siΩ o szczeg≤│y. P≤╝niejsze sekcje wprowadz▒ og≤lny koncept.
  293.  
  294.   Ka┐da sekcja pliku zaczyna siΩ od nazwy jak np.: [global], [homes],
  295.   [printers] itp.
  296.  
  297.   Sekcja [global] definiuje kilka og≤lnych zmiennych, kt≤re bΩd▒ siΩ
  298.   odnosiµ do wszystkich udostΩpnianych zasob≤w.
  299.  
  300.   Sekcja [homes] pozwala u┐ytkownikom na dostΩp do ich (i tyklo ich)
  301.   katalog≤w domowych na lokalnej maszynie Linux-owej. Je╢li jaki╢
  302.   u┐ytkownik Windows bΩdzie chcia│ skorzystaµ z udostΩpnianych zasob≤w,
  303.   to zostanie pod│▒czony do swojego katalogu domowego.  Zauwa┐, ┐e aby
  304.   to zrobiµ u┐ytkownik musi mieµ swoje konto na maszynie Linux-owej.
  305.  
  306.   Poni┐szy przyk│adowy plik smb.conf pozwala u┐ytkownikom na dostΩp do
  307.   swoich katalog≤w domowych i na zapis do katalogu tymczasowego.  Aby
  308.   u┐ytkownik Windows zobaczy│ udostΩpniane zasoby, Linux musi byµ w tej
  309.   samej sieci lokalnej. U┐ytkownik Windows po prostu do│▒cza dysk
  310.   sieciowy z Mened┐era Plik≤w lub Eksploratora Windows.
  311.  
  312.   W nastΩpnych sekcjach bΩd▒ dodawane kolejne linie do tego pliku, aby
  313.   umo┐liwiµ dostΩp do wiΩkszej ilo╢ci zasob≤w.
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.   ______________________________________________________________________
  332.    etc/smb.conf
  333.      ;
  334.      ; Po wprowadzeniu zmian do tego pliku zrestartuj demony Samby
  335.      ; kill -9 `pidof smbd`; kill -9 `pidof nmbd`
  336.      ; /usr/sbin/smbd; /usr/sbin/nmbd
  337.      [global] Umie╢µ to w pliku je╢li chcesz konto anonimowe guest account = nobody
  338.         log file = /var/log/samba-log.%m lock directory = /var/lock/samba share
  339.         modes = yes
  340.  
  341.      [homes] comment = Katalogi Domowe browseable = no read only = no create
  342.         mode = 0750
  343.  
  344.      [tmp] comment = Miejsce na pliki tymczasowe path = /tmp read only = no
  345.         public = yes
  346.   ______________________________________________________________________
  347.  
  348.  
  349.  
  350.  
  351.   5.  UdostΩpnianie dysku Linux-owego komputerom z Windows.
  352.  
  353.  
  354.   Jak widaµ na powy┐szym przyk│adzie udostΩpnianie dysk≤w Linux-owych
  355.   u┐ytkownikom Windows jest proste. DostΩp do zasob≤w udostΩpnianych
  356.   poprzez SambΩ mo┐na w bardzo du┐ym stopniu kontrolowaµ.
  357.  
  358.   Aby udostΩpniµ wszystkim jakie╢ zasoby, dodaj poni┐sze linie do
  359.   smb.conf:
  360.  
  361.  
  362.   ______________________________________________________________________
  363.      [public]
  364.      comment = Public Stuff path = /home/public public = yes writable = yes
  365.         printable = yes
  366.   ______________________________________________________________________
  367.  
  368.  
  369.  
  370.   Aby umo┐liwiµ zapis do tego katalogu tylko dla cz│onk≤w grupy staff,
  371.   zmodyfikuj te linie w nastΩpuj▒cy spos≤b:
  372.  
  373.  
  374.   ______________________________________________________________________
  375.      [public]
  376.      comment = Public Stuff path = /home/public public = yes writable = yes
  377.         printable = no write list = @staff
  378.   ______________________________________________________________________
  379.  
  380.  
  381.  
  382.   WiΩcej informacji na temat r≤┐nych sposob≤w udostΩpniania zasob≤w
  383.   znajdziesz w dokumentacji do Samby.
  384.  
  385.  
  386.   6.  UdostΩpnianie dysku spod Windows maszynom z Linux-em.
  387.  
  388.   Wraz z dystrybucj▒ Samby otrzymujemy klienta dla Unix-≤w. Jego
  389.   interfejs polece± jest podobny do ftp. Mo┐esz go u┐ywaµ, aby przenosiµ
  390.   pliki miΩdzy Windowsowym "serwerem" a klientem Linux-owym.
  391.  
  392.   Aby zobaczyµ jakie zasoby sa udostΩpnione na danym ho╢cie napisz:
  393.  
  394.  
  395.  
  396.  
  397.   ______________________________________________________________________
  398.        /usr/sbin/smbclient -L host
  399.   ______________________________________________________________________
  400.  
  401.  
  402.  
  403.   gdzie host jest nazw▒ maszyny, kt≤rej zasoby chcesz zobaczyµ.
  404.   Polecenie to zwr≤ci listΩ nazw serwis≤w - to znaczy nazw dysk≤w lub
  405.   drukarek, kt≤re mo┐e udostΩpniµ. Serwer Samby bΩdzie ciΩ pyta│ o
  406.   has│o, o ile nie ma skonfigurowanego bezpiecznego dostΩpu.
  407.  
  408.   Np.
  409.  
  410.  
  411.   ______________________________________________________________________
  412.        smbclient -L zimmermann
  413.   ______________________________________________________________________
  414.  
  415.  
  416.  
  417.   Polecenie to powinno wy╢wietliµ co╢ na kszta│t:
  418.  
  419.  
  420.   ______________________________________________________________________
  421.    Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0
  422.   Password: Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]
  423.  
  424.      Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
  425.  
  426.              Sharename      Type      Comment
  427.              ---------      ----      -------
  428.              ADMIN$         Disk      Remote Admin public Disk Public C$ Disk
  429.              Default share IPC$ IPC Remote IPC OReilly Printer OReilly print$
  430.              Disk Printer Drivers
  431.  
  432.  
  433.      This machine has a browse list:
  434.  
  435.              Server               Comment
  436.              ---------            -------
  437.              HOPPER               Samba 1.9.15p8 KERNIGAN Samba 1.9.15p8 LOVELACE
  438.              Samba 1.9.15p8 RITCHIE Samba 1.9.15p8 ZIMMERMAN
  439.   ______________________________________________________________________
  440.  
  441.  
  442.  
  443.   Browse list pokazuje inne serwery SMB udostΩpniaj▒ce zasoby w sieci.
  444.  
  445.   Aby u┐yµ klienta napisz:
  446.  
  447.   ______________________________________________________________________
  448.        /usr/sbin/smbclient serwis <has│o>
  449.   ______________________________________________________________________
  450.  
  451.  
  452.  
  453.   gdzie serwis jest nazw▒ maszyny i zasobu. Na przyk│ad je╢li pr≤bujesz
  454.   dostaµ siΩ do katalogu, kt≤ry jest udostΩpniany jako public na
  455.   maszynie o nazwie zimmermann, serwisem by│oby: \\zimmerman\public.
  456.   Chocia┐ z powodu pow│oki w Linux-ie bΩdziesz musia│ oznaczyµ znaki \
  457.   specjalnie i polecenie ostatecznie wygl▒da tak:
  458.  
  459.   ______________________________________________________________________
  460.        usr/sbin/smbclient \\\\zimmerman\\public has│o
  461.   ______________________________________________________________________
  462.  
  463.   gdzie has│o jest │a±cuchem znak≤w bΩd▒cym twoim has│em.
  464.  
  465.   Pojawi siΩ wtedy znak zachΩty klienta Samby:
  466.  
  467.  
  468.   ______________________________________________________________________
  469.       Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0
  470.       Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
  471.       3.51] smb: \>
  472.   ______________________________________________________________________
  473.  
  474.  
  475.  
  476.   Napisz 'h', aby uzyskaµ pomoc:
  477.  
  478.  
  479.   ______________________________________________________________________
  480.        smb: \> h ls dir lcd cd pwd get mget put mput rename more mask del rm
  481.        mkdir md rmdir rd prompt recurse translate lowercase print printmode
  482.        queue cancel stat quit q exit newer archive tar blocksize tarmode
  483.        setmode help ?  !  smb: \>
  484.   ______________________________________________________________________
  485.  
  486.  
  487.  
  488.   Je╢li umiesz u┐ywaµ ftp, to nie powiniene╢ potrzebowaµ czytaµ
  489.   podrΩcznika systemowego na temat smbclient.
  490.  
  491.  
  492.   7.  UdostΩpnianie drukarki Linux-owej komputerom z Windows.
  493.  
  494.  
  495.   Aby udostepniµ drukarkΩ Linux-ow▒ Windowsom musisz siΩ upewniµ, ┐e
  496.   drukarka dzia│a dobrze pod Linux-em. Je╢li mo┐esz drukowaµ spod Linux-
  497.   a to ustawienie serwera SMB dla drukarki jest bardzo proste.
  498.  
  499.   Przeczytaj Priniting-HOWTO na temat ustawienia drukarki pod Linux-em.
  500.  
  501.   Poniewa┐ autor u┐ywa drukarki po│▒czonej z Windows NT, sekcja ta nie
  502.   powinna byµ brana za definicjΩ, ale bardziej jako sugestia.  Je╢li
  503.   ktokolwiek ma ochotΩ siΩ podzieliµ szczeg≤│ami na temat innych
  504.   konfiguracji proszΩ o kontakt, aby ta sekcja mog│a zostaµ sko±czona:
  505.   dwood@plugged.net.au.
  506.  
  507.   Dodaj konfiguracjΩ na temat drukowania do smb.conf:
  508.  
  509.  
  510.   ______________________________________________________________________
  511.        [global]
  512.        printing = bsd printcap name = /etc/printcap load printers = yes
  513.        log file = /var/log/samba-log.%m lock directory = /var/lock/samba
  514.  
  515.        [printers] comment = Wszystkie drukarki security = server path = /var/spool/lpd/lp
  516.        browseable = no printable = yes public = yes writable = no
  517.        create mode = 0700
  518.  
  519.        [ljet] security = server path = /var/spool/lpd/lp printer name = lp
  520.        writable = yes public = yes printable = yes
  521.        print command = lpr -r -h -P %p %s
  522.   ______________________________________________________________________
  523.  
  524.  
  525.  
  526.   Upewnij siΩ, ┐e ╢cie┐ka do drukarki (w tym wypadku w sekcji ]ljet[)
  527.   jest taka sama jak katalog zada± w etc/printcap.
  528.  
  529.   UWAGA: S▒ pewne problemy przy udostΩpnianiu drukarki Unixowej przez
  530.   SambΩ komputerom z Windows NT. Jeden problem to taki, ┐eby NT widzia│o
  531.   poprawnie drukarkΩ. Aby go zlikwidowaµ przeczytaj plik docs/WinNT.txt,
  532.   kt≤ry jest dostarczany wraz z dystrybucj▒. Drugi problem to has│a.
  533.   Przeczytaj ten sam plik, aby rozwi▒zaµ ten problem.
  534.  
  535.  
  536.   8.  UdostΩpnianie drukarki spod Windows komputerom z Linux-em.
  537.  
  538.  
  539.   Aby udostΩpniµ drukarkΩ spod Windows-≤w musisz zrobiµ nastΩpuj▒ce
  540.   rzeczy:
  541.  
  542.   a) Musisz mieµ poprawne pola w /etc/printcap i musz▒ one odpowiadaµ
  543.   lokalnej strukturze katalog≤w (katalog dla drukarki itp.)
  544.  
  545.   b) Musisz mieµ skrypt /usr/bin/smbprint. Skrypt ten znajduje siΩ w
  546.   ╝r≤d│ach Samby, ale nie w ka┐dym pakiecie binarnym.  Poni┐ej znajduje
  547.   siΩ trochΩ zmodyfikowana wersja tego skryptu.
  548.  
  549.   c) Je╢li chcesz zamieniaµ pliki ASCII na PostScript, musisz mieµ
  550.   nenscript albo jego ekwiwalent. nenscript jest konwerterem PostScript-
  551.   owym i jest z regu│y instalowany w /usr/bin.
  552.  
  553.   d) Mo┐esz u│atwiµ drukowanie poprzez SambΩ pisz▒c skrypt. Poni┐ej
  554.   podany jest prosty skrypt w Perl-u obs│uguj▒cy pliki ASCII, PostScript
  555.   i stworzony PostScript.
  556.  
  557.   Poni┐sze pola w /etc/printcap s▒ dla drukarki HP 5MP do│▒czonej do
  558.   komputera z Windows NT.
  559.  
  560.  
  561.   ______________________________________________________________________
  562.        cm - komentarz; lp - urz▒dzenie, na kt≤re ma byµ wys│any wydruk;
  563.        sd - katalog zada± dla drukarki (na lokalnym komputerze); af -
  564.      katalog accounting; mx - maksymalny rozmiar pliku (0 - bez
  565.      ograniczenia); if - nazwa filtru wej╢ciowego (skryptu).
  566.   ______________________________________________________________________
  567.  
  568.  
  569.  
  570.   WiΩcej informacji znajdziesz w Printing-HOWTO lub w podrΩczniku
  571.   systemowym dla "printcap".
  572.  
  573.  
  574.   ______________________________________________________________________
  575.    etc/printcap
  576.      #
  577.      # //zimmerman/oreilly przez smbprint
  578.      #
  579.      lp:\ cm=HP 5MP Postscript OReilly na zimmerman:\ lp=/dev/lp1:\
  580.              :sd=/var/spool/lpd/lp:\ af=/var/spool/lpd/lp/acct:\ mx#0:\
  581.              :if=/usr/bin/smbprint:
  582.   ______________________________________________________________________
  583.  
  584.  
  585.  
  586.   Upewnij siΩ, ┐e katalogi zada± i accounting istniej▒ i s▒ zapisywalne
  587.   oraz ┐e if ma poprawn▒ ╢cie┐kΩ do scryptu smbprint (patrz poni┐ej) i
  588.   ┐e lp wskazuje poprawne urz▒dzenie (plik specjalny w katalogu /dev)
  589.  
  590.   NastΩpnym krokiem jest skrypt smbprint. Zwykle znajduje siΩ on w
  591.   /usr/bin i jest przypisywany Andrew Tridgellowi - osobie, kt≤ra
  592.   stworzy│a SambΩ o ile wiem. Przychodzi on wraz z dystrybucj▒ ╝r≤de│
  593.   Samby, ale nie ma go w dystrybucji binari≤w, wiΩc go tutaj stworzy│em.
  594.  
  595.   Mo┐esz przejrzeµ go dok│adniej. Przerobi│em go trochΩ, poniewa┐
  596.   przer≤bki wydawa│y mi siΩ u┐yteczne.
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.   ______________________________________________________________________
  662.      #!/bin/sh
  663.      # Skrypt ten jest filtrem wej╢ciowym do drukowania na drukarce
  664.      # do│▒czonej do Unix-a. U┐ywa programu smbclient do drukowania
  665.      # pliku. Na przyk│ad tw≤j printcap m≤g│by wygl▒daµ nastepuj▒co:
  666.      #
  667.      #
  668.      # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
  669.      #
  670.      #
  671.      # Stworzy│by on drukarkΩ o nazwie smb, kt≤ra drukowa│aby poprzez
  672.      # ten skrypt. Musia│by╢ stworzyµ katalog zada± /usr/spool/smb z
  673.      # odpowiednimi dla twojego systemu prawami dostΩpu i w│a╢cicielem.
  674.      #
  675.      # Ustaw nastΩpuj▒ce rzeczy na serwer i serwis przez, kt≤ry chcesz
  676.      # drukowaµ. W tym przyk│adzie mam PC-ta z WfWg o nazwie "lapland",
  677.      # kt≤ry ma drukarkΩ o nazwie printer bez has│a.
  678.      #
  679.      #
  680.      # W dalszej czΩ╢ci skrypt zosta│ przerobiony przez hamilton@ecnz.co.nz
  681.      # (Michael Hamilton, tak aby serwer, serwis i has│o mog│y byµ
  682.      # przeczytane z pliku /usr/var/spool/lpd/PRINTNAME/.config
  683.      #
  684.      # Aby to dzia│a│o /etc/printcap musi mieµ pole af:
  685.      #
  686.      #   cdcolour:\ cm=CD IBM Colorjet on 6th:\ sd=/var/spool/lpd/cdcolour:\
  687.      #       :af=/var/spool/lpd/cdcolour/acct:\ if=/usr/local/etc/smbprint:\
  688.      #       :mx=0:\ lp=/dev/null:
  689.      #
  690.      # Plik /usr/var/spool/lpd/PRINTNAME/.config powinien zawieraµ:
  691.      #   server=PC_SERVER service=PR_SHARENAME password="password"
  692.      #
  693.      # Np. server=PAULS_PC service=CJET_371 password=""
  694.  
  695.      #
  696.      # Plik, do kt≤rego maj▒ byc zapisywane wiadomo╢ci ze ╢ledzenia;
  697.      # mo┐esz zmieniµ na /dev/null je╢li chcesz:
  698.      #
  699.      logfile=/tmp/smb-print.log logfile=/dev/null
  700.  
  701.  
  702.      #
  703.      # Ostatnim parametrem do filtra jest nazwa pliku accounting.
  704.      #
  705.      spool_dir=/var/spool/lpd/lp config_file=$spool_dir/.config
  706.  
  707.      # Powinien czytaµ te zmienne z pliku konfiguracyjnego: serwer
  708.      # serwis has│o u┐ytkownik
  709.      eval `cat $config_file`
  710.  
  711.      # TrcohΩ pomocy, zmie± >> na > je╢li chcesz zachowaµ trochΩ
  712.      # miejsca na dysku.
  713.      #
  714.      echo "server $server, service $service" >> $logfile
  715.  
  716.      (UWAGA Mo┐esz dodaµ liniΩ `echo translate' jesli chcesz
  717.      # automatycznego t│umaczenia CR/LF podczas drukowania.
  718.           echo translate echo "print -" cat
  719.      ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user
  720.      -N -P >>
  721.      $logfile
  722.   ______________________________________________________________________
  723.  
  724.  
  725.  
  726.  
  727.   WiΩkszo╢µ dystrybucji Linux-owych posiada nenscript do zamiany
  728.   dokument≤w ASCII na PostScript. NastΩpuj▒cy skrypt w Perl-u u│atwia
  729.   ┐ycie stwarzaj▒c prosty interfejs dla drukowania w Linux-ie przez
  730.   smbprint.
  731.  
  732.  
  733.   ______________________________________________________________________
  734.        Stosowanie: print [-a|c|p] <nazwa_pliku>
  735.        -a drukuje <nazwa_pliku> jako ASCII; c drukuje <nazwa_pliku>
  736.        sformatowane jako ╝r≤d│o; -code p drukuje <nazwa_pliku> jako
  737.        PostScript.
  738.        Je╢li nie ma ┐adnej opcji, print pr≤buje odgadn▒µ typ pliku i
  739.       odpowiednio go wydrukowaµ.
  740.   ______________________________________________________________________
  741.  
  742.  
  743.  
  744.   U┐ycie smbprint do drukowania plik≤w ASCII powoduje obcinanie d│ugich
  745.   linii. Ten skrypt dzieli d│ugie linie w miejscu spacji (zamiast w
  746.   ╢rodku s│owa) je╢li jest to mo┐liwe.
  747.  
  748.   Formatowanie ╝r≤d│a odbywa sie przy pomocy programu nenscript.  Bierze
  749.   on plik ASCII i formatuje go w dwie kolumny z dodatkowym nag│≤wkiem
  750.   (data, nazwa pliku, itp.) Zlicza tak┐e ilo╢µ linii.  Wzoruj▒c siΩ na
  751.   tym przyk│adzie mo┐esz zrobiµ inne typy formatowania.
  752.  
  753.   Dokumenty PostScript-owe s▒ ju┐ sformatowane wiΩc przechodz▒
  754.   bezpo╢rednio do drukarki.
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.   ______________________________________________________________________
  794.    usr/bin/perl
  795.  
  796.   # Skrypt:   print Autorzy: Brad Marshall, David Wood
  797.   #           Plugged In Communications Date: 960808
  798.   #
  799.   # Skrypt do drukowania na drukarce oreilly, kt≤ra jest do│▒czona do
  800.   # komputera zimmerman. Opis dzia│ania: Jako argumenty przyjmuje pliki
  801.   # r≤┐nych typ≤w i wysy│a je odpowiednio do skryptu drukujacego Samby
  802.   #
  803.   # Obecnie obs│ugiwane typy plik≤w:
  804.   #
  805.   # ASCII         - Upewnij siΩ, ┐e linie d│u┐sze ni┐ $line_length zosta│y
  806.   #               podzielone w miejscu spacji.
  807.   # PostScript    - Nie robi nic.
  808.   # Code          - Formatuje na PostScript u┐ywaj▒c "nenscript", aby wszystko
  809.   #               by│o odpowiednio wy╢wietlone (u│o┐enie, czcionki, itd.)
  810.   #
  811.   #
  812.   # Ustaw maksymaln▒ ilo╢µ znak≤w w linii dla plik≤w ASCII. line_length
  813.   $= 76;
  814.  
  815.   # Ustaw ╢cie┐kΩ i nazwΩ skryptu drukuj▒cego Samby print_prog =
  816.   $"/usr/bin/smbprint";
  817.  
  818.   # Ustaw ╢cie┐kΩ i nazwΩ "nenscript-u" (zamiana ASCII-->PostScript)
  819.   $nenscript = "/usr/bin/nenscript";
  820.  
  821.   unless ( -f $print_prog ) { die "Can't find $print_prog!";
  822.   }
  823.   unless ( -f $nenscript ) { die "Can't find $nenscript!";
  824.   }
  825.  
  826.   &ParseCmdLine(@ARGV);
  827.  
  828.   # DBG print "filetype is $filetype\n";
  829.  
  830.   if ($filetype eq "ASCII") { ero;wrap($line_length); elsif ($filetype eq
  831.           &"code") {
  832.   } ero;codeformat; elsif ($filetype eq "ps") {
  833.           &createarray; else {
  834.   } print "Sorry..no known
  835.           &file type.\n"; exit
  836.   } 0;
  837.   }
  838.   # Wy╢lij tablcΩ do smbprint open(PRINTER, "|$print_prog") || die "Can't
  839.   open $print_prog: $!\n"; foreach
  840.   $line (@newlines) {
  841.           print PRINTER $line;
  842.   }
  843.   # Wy╢lij dodatkowy znak LF je╢li plik ma niekompletn▒ ostatni▒ liniΩ. print
  844.   PRINTER "\n"; close(PRINTER); print "Completed\n"; exit 0;
  845.  
  846.   # --------------------------------------------------- #
  847.   #        Wszystko poni┐ej jest procedur▒              #
  848.   # --------------------------------------------------- #
  849.  
  850.   sub ParseCmdLine { Interpretuje wiersz polece±, szukaj▒c jakiego typu jest
  851.           # plik
  852.  
  853.           # Gets $arg and $file to be the arguments (if they exists) and the
  854.           # filename
  855.           if ($#_ < 0) { ero;usage;
  856.           }
  857.           # DBG foreach $element (@_) { print "*$element* \n";
  858.   #       }
  859.           $arg = shift(@_); if ($arg =~ /\-./) { cmd = $arg; DBG print "\$cmd
  860.           found.\n";
  861.  
  862.                   $file = shift(@_); else { file = $arg;
  863.           }
  864.  
  865.           # Definiowanie typu pliku dop≤ki ($cmd) { Nie mamy argument≤w
  866.  
  867.                   if ($file =~ /\.ps$/) { filetype = "ps"; elsif ($file =~
  868.                           $/\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/)
  869.                           ${ filetype = "code"; else { filetype = "ASCII";
  870.                   }
  871.  
  872.                   # Przer≤b $file odpowiednio do jego typu i zwr≤µ $filetype
  873.           } else { Mamy typ pliku w $arg if ($cmd =~ /^-p$/) {
  874.                   filetype = "ps"; elsif ($cmd =~
  875.                           $/^-c$/) { filetype
  876.                   } = "code"; elsif ($cmd =~
  877.                           $/^-a$/) {
  878.                   } filetype = "ASCII"
  879.                   }
  880.           }
  881.   }
  882.  
  883.   sub usage { print " Stosowanie: print [-a|c|p] <plik>
  884.          -a drukuje <plik> jako ASCII c drukuje <plik> sformatowany jako
  885.            ╝r≤d│o
  886.          -code p drukuje <plik> jako PostScript
  887.           Je╢li nie ma ┐adnej opcji, print pr≤buje odgadn▒µ typ pliku i
  888.           odpowiednio go wydrukowaµ.\n
  889.   ";
  890.           exit(0);
  891.   }
  892.  
  893.   sub wrap { Stw≤rz tablicΩ linii w pliku, gdzie ka┐da linia jest kr≤tsza od
  894.           # podanej ilo╢ci znak≤w i jest podzielona tylko w miejscach spacji
  895.  
  896.           # Pobierz ilo╢µ znak≤w jaka mo┐e byµ w linii.  limit =
  897.           $pop(@_);
  898.  
  899.           # DBG print "Entering subroutine wrap\n"; print "The line length
  900.           #limit is $limit\n";
  901.  
  902.           # Wczytaj plik, sformatuj i umie╢µ w tablicy.  open(FILE,
  903.           "<$file") || die "Can't open $file: $!\n"; while(<FILE>) {
  904.                   $line = $_;
  905.  
  906.                   # DBG print "The line is:\n$line\n";
  907.  
  908.                   # Podziel liniΩ je╢li jest d│u┐sza ni┐ podana ilo╢µ znak≤w.  while (
  909.                   length($line) > $limit ) {
  910.  
  911.                           # DBG print "Wrapping...";
  912.  
  913.                           # Pobierz pierwsze $limit+1 znak≤w.  part =
  914.                           $substr($line,0,$limit +1);
  915.  
  916.                           # DBG print "The partial line is:\n$part\n";
  917.  
  918.                           # Sprawd╝ czy ostatni znak jest spacj▒.
  919.                           $last_char = substr($part,-1, 1);
  920.                           if ( " " eq $last_char ) { Je╢li tak, wydrukuj resztΩ.
  921.  
  922.                               # DBG print "The last character was a space\n";
  923.  
  924.                               substr($line,0,$limit + 1) = "";
  925.                               substr($part,-1,1) = "";
  926.                               push(@newlines,"$part\n");
  927.                           } else { Je╢li nie, znajd╝ ostatni▒ spacjΩ w
  928.                                   # pod-linii i drukuj do niej
  929.  
  930.                               # DBG print "The last character was not a
  931.                               #space\n";
  932.  
  933.                                # Usu± znaki dalsze ni┐ $limit
  934.                                substr($part,-1,1) = ""; Odwr≤µ liniΩ
  935.                                # aby u│atwiµ odnajdywanie ostatniej spacji
  936.                                $revpart = reverse($part);
  937.                                $index = index($revpart," ");
  938.                                if ( $index > 0 ) {
  939.                                  substr($line,0,$limit-$index) = "";
  940.                                  push(@newlines,substr($part,0,$limit-$index)
  941.                                      . "\n"); else { Nie by│o spacji w linii
  942.                                } wiΩc
  943.                                  # wydrukuj do $limit.
  944.                                  substr($line,0,$limit) = "";
  945.                                  push(@newlines,substr($part,0,$limit)
  946.                                      . "\n");
  947.                                }
  948.                           }
  949.                   }
  950.                   push(@newlines,$line);
  951.           }
  952.           close(FILE);
  953.   }
  954.  
  955.   sub codeformat { Wywo│aj procedurΩ wrap i przefiltruj przez nenscript
  956.           &wrap($line_length);
  957.  
  958.           # Przepu╢µ wynik przez nenscript, aby utworzyµ plik PostScript,
  959.           # kt≤ry pasuje do jakiego╢ przyzwoitego formatu ╝r≤de│ do drukowania
  960.           # (u│o┐enie, czcionki Courier, ilo╢µ linii). Najpierw wydrukuj to do
  961.           # pliku tymczasowego.
  962.           $tmpfile = "/tmp/nenscript$$";
  963.           open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") || die "Can't
  964.                   open nenscript: $!\n"; foreach $line (@newlines)
  965.           {
  966.                   print FILE $line;
  967.           }
  968.           close(FILE);
  969.  
  970.           # Wczytaj plik tymczasowy spowrotem do tablicy, tak aby m≤g│ byµ
  971.           # wys│any do skryptu print Samby.
  972.           @newlines = ("");
  973.           open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
  974.           while(<FILE>) {
  975.                   push(@newlines,$_);
  976.           }
  977.           close(FILE); system("rm $tmpfile");
  978.   }
  979.  
  980.   sub createarray { Stw≤rz tablicΩ dla PostScript-u open(FILE, "<$file") ||
  981.           # die "Can't
  982.           open $file: $!\n"; while(<FILE>) {
  983.                   push(@newlines,$_);
  984.           }
  985.           close(FILE);
  986.   }
  987.   ______________________________________________________________________
  988.  
  989.  
  990.  
  991.   9.  Prawa autorskie i Zako±czenie.
  992.  
  993.  
  994.  
  995.   9.1.  Prawa autorskie.
  996.  
  997.  
  998.   Dokument ten jest chroniony prawami autorskimi Davida Wooda 1996.
  999.   Mo┐e on byµ reprodukowany w ka┐dej formie i dystrybuowany bez
  1000.   ogranicze± tak d│ugo jak nie zmieni siΩ jego zawarto╢µ i zawarte jest
  1001.   w nim to stwierdzenie.
  1002.  
  1003.  
  1004.   9.2.  PodziΩkowania.
  1005.  
  1006.  
  1007.   Je╢li tylko przy╢lesz mi jakie╢ sugestie, umieszczΩ ciΩ tutaj w
  1008.   nastΩpnej wersji.
  1009.  
  1010.  
  1011.   9.3.  Od t│umacza.
  1012.  
  1013.  
  1014.   T│umaczenie to jest chronione prawami autorskimi (C) Bartosza
  1015.   Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  1016.   prawach takich samych jak dokument oryginalny.
  1017.  
  1018.   Je╢li znalaz│e╢ jakie╢ ra┐▒ce b│Ωdy ortograficzne, gramatyczne,
  1019.   sk│adniowe, techniczne to pisz do mnie:
  1020.  
  1021.   B.Maruszewski@zsmeie.torun.pl
  1022.  
  1023.   Oficjaln▒ stron▒ t│umacze± HOWTO jest http://www.jtz.org.pl/
  1024.  
  1025.   Aktualne wersje przet│umaczonych dokument≤w znajduj▒ siΩ na tej┐e
  1026.   stronie. DostΩpne s▒ tak┐e poprzez anonimowe ftp pod adresem
  1027.   ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.
  1028.  
  1029.   Przet│umaczone przeze mnie dokumenty znajduj▒ siΩ tak┐e na mojej
  1030.   stronie WWW. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> S▒
  1031.   tam te┐ odwo│ania do Polskiej Strony T│umaczeniowej.
  1032.  
  1033.   Kontakt z nasz▒ grup▒, grup▒ t│umaczy mo┐esz uzyskaµ poprzez listΩ
  1034.   dyskusyjn▒ jtz@ippt.gov.pl. Je╢li chcesz sie na ni▒ zapisaµ, to wy╢lij
  1035.   list o tre╢ci subscribe jtz ImiΩ Nazwisko na adres
  1036.   listproc@ippt.gov.pl
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.